//=======================================Copyright(c)===========================================
// 								  深圳易马达科技有限公司
//---------------------------------------文件信息----------------------------------------------
//文件名   	: TestMode.h
//创建人  	: Handry
//创建日期	: 
//描述	    : 测试模式头文件
//-----------------------------------------------当前版本修订----------------------------------
//修改人   	:
//版本	    :
//修改日期	:
//描述	    :
//=============================================================================================
#ifndef _TESTMODE_H_
#define _TESTMODE_H_
//=============================================================================================
//头文件
//=============================================================================================
#include "BSPTypeDef.h"
#include "DataDeal.h"

//=============================================================================================
//数据类型设定
//=============================================================================================
#ifdef      LFP_AK_15000MAH_16S
#define     NORMAL_TEST_LOW_VOLT    2800
#define     NORMAL_TEST_HIGH_VOLT   3600
#elif       defined(SY_PB_32000MAH_14S) || defined(SY_PB_32000MAH_16S) || defined(SY_PB_32000MAH_17S)
#define     NORMAL_TEST_LOW_VOLT    3600
#define     NORMAL_TEST_HIGH_VOLT   4200
#elif       defined(LFP_TB_20000MAH_20S)
#define     NORMAL_TEST_LOW_VOLT    2800
#define     NORMAL_TEST_HIGH_VOLT   3600
#elif		defined(LFP_HL_25000MAH_16S) || defined(LFP_PH_20000MAH_20S) || defined(LFP_GF_25000MAH_16S)
#define     NORMAL_TEST_LOW_VOLT    2800
#define     NORMAL_TEST_HIGH_VOLT   3600
#else
#define     NORMAL_TEST_LOW_VOLT    3600
#define     NORMAL_TEST_HIGH_VOLT   4200
#endif

#define     T_DT_PARA_LEN           21
#define     T_DT_BOOT_PARA_LEN      26

//=============================================================================================
//数据类型设定
//=============================================================================================
//PCB测试结构体
typedef struct
{
    u8 en;
    u8 sta;
    u8 presentstep;
    u8 nextstep;
    u16 lc;
    u16 result;
    
    u32 timebuf;

    s16 maxvolt[BAT_CELL_NUM];
    s16 minvolt[BAT_CELL_NUM];
    s16 tmaxvolt;
    s16 tminvolt;

    s16 maxtemp[6];
    s16 mintemp[6];

    u8  rtcsec;
    u32 testtimeout;
}t_PCBATEST;

typedef void(*t_TESTFUNC)(t_PCBATEST * d);
//=============================================================================================
//宏参数设定
//=============================================================================================

//=============================================================================================
//声明变量，供外部使用
//=============================================================================================
extern t_PCBATEST gPCBTest;
extern volatile u8 gACCIntTestFlag;

//=============================================================================================
//声明接口函数
//=============================================================================================
//=============================================================================================
//函数名称	: void TestModeInit(void)
//函数参数	:
//输出参数	:
//静态变量	:
//功	能	: 测试模式初始化函数
//注	意	:
//=============================================================================================
void TestModeInit(void);

//=============================================================================================
//函数名称	: void TestModePCBTestTask(void *p)
//函数参数	:
//输出参数	:
//静态变量	:
//功    能	: 测试模式主函数
//注    意	:
//=============================================================================================
void TestModePCBTestTask(void *p);

#endif

/*****************************************end of TestMode.h*****************************************/
